Шкірки. Теорія - Довідка Light Alloy

Як відомо, зовнішній вигляд Light Alloy визначається шкірками. Шкірки дозволяють визначити зовнішній вигляд таких елементів:

Формат шкірки

Шкірка є файлом з розширенням LAS, розташованим в програмній теці Light Alloy \ Skins. Фактично, це ZIP-архів зі зміненим розширенням. Це дозволяє уникати питань користувача про те, що робити з зкачаним архівом і куди класти розпаковані файли.

Варто відмітити, що в процесі розробки використовувати ZIP-архів, та ще і перейменований, незручно. Тому Light Alloy здатний працювати і з іншими форматами шкірок:

Архів з розширенням .zip - це звичайна шкірка, у якої просто зберегли оригінальне розширення архіву. Такий варіант шкірки зручний, коли потрібно оперативно відправити кому-небудь шкірку на аналіз або оцінку.

Розпакована шкірка - це просто тека з вмістом. Шкірка у такому вигляді чудово підходить для активної розробки, оскільки є швидкий і прямий доступ до усіх файлів шкірки. Крім того, окрім файлів в теці можна зберігати також вихідний код і зразки. У меню налаштувань розпаковані шкірки легко упізнати: їх назва береться в [квадратні дужки].

Склад файлу шкірки

Усередині шкірки знаходяться такі файли:

Пройдемося по цих файлах детальніше.

Preview.png

Це файл попереднього перегляду. Він служить для показу зображення шкірки в налаштуваннях:

Параметри цього файлу:

Що зображують у файлі передперегляду? Загалом і в цілому, це залишається на розсуд автора, але основні напрями цього зображення, зазвичай, такі:

  1. Цей малюнок - візитка. Тут має бути зображення, яке демонструє основну ідею шкірки.
  2. Як правило, колірна гамма передперегляду перекликається з гаммою вікна програвача в цій шкірці.
  3. У більшості випадків в передперегляді зображається стилізована назва шкірки.
  4. Досить часто зображається стилізований логотип програвача.

Зверніть увагу: немає сенсу зображувати передперегляд шкірки, оскільки подвійне клацання її приміряє на сам програвач. А на нім, як очевидно, "переглянути" шкірку набагато зручніше і наочніше.

SkinInfo.txt

Цей файл працює в парі з попереднім. Він, на додаток до Preview.png представляє шкірку в налаштуваннях. Але вже текстову частину.

Параметри цього файлу:

Усередині skinInfo.txt виглядає приблизно так:

SkinTitle=Dub SkinAuthor=Dvigok, Gilorn SkinVer=4.7.3 SkinWWW=http://www.light-alloy.ru/forum/skins/dub/ SkinCmt=Official skin SkinAudio=0

Зверніть увагу: значення йде відразу після знаку "=". Пропуск після "=" недопустимий, оскільки він може привести до некоректного відображення інформації в програвачі. Але вже усередині значення, пропуски використовувати можна без обмежень.

Параметр Значення
SkinTitle Пишеться назва шкірки. Рекомендується не використовувати в назві [квадратні дужки], оскільки такими дужками позначається розпакована шкірка.
SkinAuthor Вказується автор шкірки. Чи декілька авторів. Тут не вказуються реставратори шкірки (не відноситься до розширених портів і альтернативних версій шкірки; у таких випадках дійте на власний розсуд).
SkinVer Вказується версія шкірки. Зараз використовуються два методи призначення версій шкірки:
  1. незалежний:
    • стандартний підхід, як у програм:
    • перша фінальна версія - v1.0.0
    • виправлення помилок - v1.0.1
    • дрібне/середнє додавання або зміна - v1.1.0
    • велика/глобальна зміна - v2.0.0
  2. залежний:
    • йде прив'язка до версій Light Alloy:
    • перша фінальна версія має версію, аналогічну тій версії Light Alloy, на якій шкірка гарантовано працюватиме, наприклад - v4.7.0.1
    • якщо відбувається зміна шкірки без використання додаткових можливостей - v4.7.0.2
    • якщо відбувається зміна шкірки з використанням додаткових можливостей - наприклад уточненням бордюру відповідно до нововведення в Light Alloy 4.7.3 - v4.7.3.1
Тільки автор шкірки визначає, який метод більше відповідає його інтересам.
SkinWWW Адреса шкірки або адреса автора. Найчастіше тут вказують адресу шкірки на форумі Light Alloy. Щоб не помилитися, можна спершу створити тему на форумі, а вже після цього - вписати в шкірку адресу, упакувати її і опублікувати в тій самій темі. Такий метод займає не більше пари хвилин, так що більшість форумчан не устигають помітити оформлення теми в два підходи.
SkinCmt Будь-яка додаткова інформація про скін. Пам'ятайте: у вікні налаштувань під неї відводиться тільки один рядок. Враховуйте це. До речі тут можна вказати ім'я (чи псевдонім) реставратора шкірки.
SkinAudio Рядок, згідно якого шкірка вважається звичайною (якщо "0") або аудіошкіркою (якщо "1"). Відповідно шкірка відображається або в загальному переліку або в переліку шкірок аудіорежиму.

Interface.xml

Це файл розмітки. Він як би пояснює, звідки саме брати графічні елементи і куди саме їх писати.

Параметри цього файлу:

Interface.xml складається з трьох частин:

<IMAGE id="Hint" file="main.bmp"> <AREA id="Lclick" pos="0,235" size="22,22"/> <AREA id="Rclick" pos="23,235" size="22,22"/> </IMAGE>

<FONT id="Digits" img="FT.Digits" chars="0123456789: &lt;&gt;_"/>

<CONTROL type="Panel" bg="FT.PosBG" pos="145,38" size="130,18"> <CONTROL type="Text" pos="3,1" size="69,14" font="Digits" text=" {POS}_&gt;_"/> <CONTROL type="Text" pos="72,1" size="51,14" font="Digits_dur" text="{DUR}"/> </CONTROL>

Блоків кожного з трьох типів може бути декілька. Деякі з блоків мають фіксовані назви, деякі - ні.

Подробиці роботи з "Interface.xml" будуть описані трохи пізніше.

Skin.bmp

Це основне джерело зображень для шкірки. Може бути представлений як одним файлом, так і декількома. Типовий зразок:

Файли зображень - єдині файли в шкірках, вимоги до яких взагалі відсутні (окрім формату файлу). Проте, чим більший розмір цього файлу, тим більше програвач споживатиме оперативної пам'яті.

Обмеження шкірок для Light Alloy

Незважаючи на активний розвиток програвача, можливості шкірок мають обмеження, пов'язані з тим, що движок шкірок спочатку розвивався тільки під один-єдиний скін (PK-69), а потім попередній розробник покинув проект, але не передав вихідний код движка. Ось ключові обмеження:

Є ще декілька обмовок, що стосуються окремих елементів. Про них буде сказано свого часу.